home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / DEVELOP.ZIP / 145INFO.DOC next >
Text File  |  1991-12-09  |  27KB  |  535 lines

  1.              PCBOARD UPDATE INFORMATION FOR THIRD PARTY DEVELOPERS
  2.              -----------------------------------------------------
  3.  
  4.               Copyright (C) 1990 by Clark Development Company, Inc
  5.          This information is provide for the sole purpose of providing
  6.        Third Party Authors with information to aid in the development of
  7.      PCBoard v14.5 add-on products.  All other uses are strictly forbidden.
  8.  
  9. GOAL:  One major goal in designing PCBoard v14.5 has been to make it compatible
  10.        with the prior releases of the version 14.x software - namely, v14.0,
  11.        v14.1 and v14.2.
  12.  
  13.        This goal includes the ability of v14.5 to read and write the same file
  14.        formats as used by all of the v14.x series of software.  It also means
  15.        that by using the same file formats many third party packages should be
  16.        able to be run UN-MODIFIED with the release of v14.5.
  17.  
  18.        There are, however, a few file changes which are required for version
  19.        14.5 and they will be detailed below.  As you will see - for the most
  20.        part the goal has been achieved in that v14.x will operate EVEN WITH
  21.        most of the file changes specified below and third party software
  22.        should continue to operate unmodified as well.
  23.  
  24.  
  25. PCBTEXT File
  26. ------------
  27. This file is the one exception to the rule and the goal expressed above.  You
  28. will need to keep a separate PCBTEXT file for v14.5 because it will not be
  29. entirely useable by v14.x software.
  30.  
  31. Just as in past releases of PCBoard - when new capabilities are added to the
  32. software it becomes necessary to add additional text strings to the end of the
  33. PCBTEXT file.  That is fine because each release knows the limit of the text
  34. records that it must access and so the additional entries are of no consequence
  35. to prior releases of PCBoard.
  36.  
  37. HOWEVER, the change that brings incompatibility to the v14.5 version of PCBTEXT
  38. is the ability of v14.5 to utilize an @-variable called @OPTEXT@ which means
  39. "operational text" to PCBoard.  For instance, previous releases of PCBoard may
  40. have included a line such as this in the PCBTEXT file:
  41.  
  42.    View executed on file ()
  43.  
  44. Previous releases of PCBoard would then "piece together" the appropriate text
  45. by substituting the "()" characters with the name of the file so that when it
  46. was displayed to the caller he saw "View executed on file (TEST.ZIP)" or
  47. something like that.  Version 14.5's MKPCBTXT replaces the above line in your
  48. PCBTEXT file with a line that looks like this:
  49.  
  50.    View executed on file (@OPTEXT@)
  51.  
  52. The above approach means that the '@OPTEXT@' variable may be placed anywhere on
  53. the line (increasing your flexibility in customizing the PCBTEXT file).
  54. However, that one change means that v14.2 and prior releases will no longer
  55. display the PCBTEXT entries properly.
  56.  
  57. Therefore, you should keep a copy of your v14.x PCBTEXT files separate from
  58. your converted PCBTEXT files for v14.5's usage on the off chance that you may
  59. need or want to go back to a prior release of PCBoard.
  60.  
  61. There is an additional new capability added to PCBTEXT which you can take
  62. advantage of in v14.5 that is not available in prior releases.  And that is
  63. the ability to have a PCBTEXT entry actually display a complete FILE to the
  64. caller rather than being limited to the one line entry in PCBTEXT.  You do this
  65. by using a Percent Sign in the followed by a filename.  Here is an example:
  66.  
  67.    The v14.2 PCBTEXT file has a line that says something like this:
  68.  
  69.       "Your time has been adjusted for an upcoming event"
  70.  
  71.    While it gets the job done - that of informing the caller that their time
  72.    has been adjusted - it doesn't give them very much information and being
  73.    only one line long is often ignored by the caller.  With v14.5 you can
  74.    change the above line to read like this:
  75.  
  76.       "%C:\PCB\GEN\EVENT.WRN"
  77.  
  78.    The percent sign tells v14.5 to display the FILE that immediately follows
  79.    it to the caller instead of displaying the text in PCBTEXT.  You could then
  80.    create a file on your system called EVENT.WRN with the following text:
  81.  
  82.      @FIRST@, your time has been adjusted to @TIMELEFT@ minutes due to an event
  83.      which is scheduled for @EVENT@.  If you call back after the event has
  84.      finished you'll receive the remainder of your daily time limit.
  85.  
  86. This brings up another usage for the @OPTEXT@ variable - it means that you can
  87. place the @OPTEXT@ variable inside of your file and have PCBoard perform the
  88. text substitution at the time the file is being displayed to the caller.  Here
  89. is another example:
  90.  
  91.    Version 14.2 has a line in PCBTEXT that says something like this:
  92.  
  93.      "Uploads Not Accepted on File Format ()"
  94.  
  95.    It then fills in the parenthesis with something like *.ARC if you have set
  96.    up your UPSEC file to not allow ARC files to be uploaded to your system.
  97.    With v14.5 you could replace the above line with this line and file:
  98.  
  99.      "%C:\PCB\GEN\BADUPLOAD.TXT"
  100.  
  101.      Sorry, @FIRST@, but this system will not accept files of the format
  102.      @OPTEXT@.  We prefer to keep all of our files in the ZIP format which
  103.      we feel is more compact than other compression methods.
  104.  
  105. In the above example the file BADUPLOAD.TXT will be displayed to the caller and
  106. the variable @OPTEXT@ will be substituted with the "*.ARC" that previous
  107. releases of PCBoard would have placed within the parenthesis of the old text.
  108.  
  109. Sometimes a PCBTEXT entry will be written to the callers log and other times
  110. the entry is actually a question that gets displayed to the caller.  You can
  111. still utilitize the "%" operator above by adhering to the following rules:
  112.  
  113.     1) If a %filespec is followed by a space and then more text then the
  114.        additional text after the filespec will be displayed to the caller.
  115.        Example (replacing "leave comment for sysop"):
  116.  
  117.           %C:\PCB\GEN\COMMENT Do you want to leave a comment
  118.  
  119.        The file C:\PCB\GEN\COMMENT might explain to the caller that you'd
  120.        prefer that messages be addressed to ALL and after the file is
  121.        displayed it will then ask him "Do you want to leave a comment?".
  122.  
  123.     2) If the %filespec is followed by a PLUS sign and then more text then the
  124.        additional text will be written to the callers log but it will NOT be
  125.        displayed to the caller.  Example (replacing "file not found");
  126.  
  127.           %C:\PCB\GEN\NOTFOUND @OPTEXT@
  128.  
  129.        In this example the file C:\PCB\GEN\NOTFOUND will be displayed to the
  130.        caller and then %C:\PCB\GEN\NOTFOUND filename will be written to
  131.        the callers log where "filename" is the name of the file not found.
  132.  
  133.  
  134. PCBOARD.DAT File
  135. ----------------
  136. This file is created by PCBSETUP and hopefully by no other software out there
  137. (meaning: third party authors should *not* be writing to this file).
  138.  
  139. There are new entries at the END of the file which are used by PCBoard v14.5
  140. in place of the environment variables used by previous releases of PCBoard.
  141.  
  142. The first time you run PCBSETUP on an old v14.0 formatted file it will warn
  143. you that it is about to convert the environment variables and create a new
  144. PCBOARD.DAT file which will actually not be written to disk until you tell
  145. PCBSetup to save the file.  These new entries are:
  146.  
  147.     Line 151:  Security Level needed for USERS command
  148.     Line 152:  Security Level needed for WHO command
  149.     Line 153:  Security Level needed for BATCH file transfers
  150.     Line 154:  Name of color definition file (usually PCBFILER.DEF)
  151.     Line 155:  Lowest allowed baud rate for callers (was /BAUD:xxxx)
  152.     Line 156:  Modem delay during recycle (was /DELAY:xx)
  153.     Line 157:  Number of Rings before answering the phone
  154.     Line 158:  IRQ number of comm port if not COM1 or COM2
  155.     Line 159:  BASE address of comm port if not COM1 or COM2
  156.     Line 160:  Leave DTR up at drop to DOS (some modems hangup if DTR is down)
  157.     Line 161:  Maximum lines in scrollback buffer (was /MAX:xxx)
  158.     Line 162:  Pre-load PCBTEXT file for faster access (uses more memory)
  159.     Line 163:  Pre-load CNAMES file for faster access (uses more memory)
  160.     Line 164:  Security Level required for a caller to use @-variables
  161.     Line 165:  Include "Uploaded By" line in uploaded file descriptions
  162.     Line 166:  Show user settings during login (was /INFO)
  163.     Line 167:  Allow local F5 shells to DOS
  164.     Line 168:  Use Slave Card updating (v14.2 did, v14.5 is faster without)
  165.     Line 169:  Default subscription length for new users
  166.     Line 170:  Maximum messages in a capture file
  167.     Line 171:  Maximum messages per conference in a capture file
  168.     Line 172:  Minutes prior to an event to stop uploads
  169.     Line 173:  Security Level needed to EDIT any message
  170.     Line 174:  Security Level needed to EDIT your own message
  171.     Line 175:  Share IRQ's on microchannel buses (for comm ports)
  172.     Line 176:  Default to scan ALL conferences at login
  173.     Line 177:  Level Needed to Use the 'Read Only' Command
  174.     Line 178:  Use NEWASK questionnaire plus standard new user questions
  175.     Line 179:  Location for temporary files
  176.     Line 180:  Name and location of USERS.INF file
  177.     Line 181:  Default to 'Quick Scan' method on personal message scan
  178.     Line 182:  Number of DAYS for warning prior to subscription expiration
  179.     Line 183:  Allow ONE-name users to log onto the system
  180.     Line 184:  Default 'Expired' Security Level
  181.     Line 185:  Security Level to use the TEST command
  182.     Line 186:  Name of the message CAPTURE file (or blank=caller number)
  183.     Line 187:  Perform file verification on uploads
  184.     Line 188:  Stop the clock during Message Capture download
  185.     Line 189:  Start time for sysop pages
  186.     Line 190:  Stop time for sysop pages
  187.     Line 191:  Write Caller Number to callers log
  188.     Line 192:  Write Connect String to callers log
  189.     Line 193:  Write Caller's Security Level to callers log
  190.     Line 194:  Read PWRD file upon joining a conference
  191.     Line 195:  Confirm caller name at logon time
  192.     Line 196:  Allow password failure comment
  193.     Line 197:  Warning before logoff
  194.     Line 198:  Maximum number of lines in upload description
  195.  
  196. As you can see - all but the /NMT parameter from your SET PCB= environment
  197. settings has been moved into the PCBOARD.DAT file.  Once you have run PCBSetup
  198. you may now remove all of those settings from SET PCB= and thus reduce your
  199. environment size requirements.
  200.  
  201. Of course, some third party packages may be reading your environment switches
  202. so you may want to keep the SET PCB= settings "as is" until you have determined
  203. that none of your software requires the settings.
  204.  
  205. Line #87 which holds the value for "Display News Only When Changed" now has
  206. three possible values:  -1, 0 (for yes or no) and 1 (for Always).  If set to
  207. ALWAYS then the caller will be shown the NEWS file each and every time he
  208. joins the conference.
  209.  
  210.  
  211. MSGS File
  212. ---------
  213. The Message Files remain unchanged for this release - so all existing software
  214. (third party or otherwise) should be able to read and write PCBoard v14.5
  215. message file formats if they were able to do so with v14.0 thru v14.2 releases
  216. of the software.
  217.  
  218. One change to the HANDLING of the message base has been made in the area of
  219. handling message base updating:
  220.  
  221. In the past PCBoard locked the first 128 bytes of the file which made up the
  222. entire HEADER region of the file.  This 'lock' was placed on the file so that
  223. other nodes on the network could not update the file at the same time.
  224.  
  225. Version 14.5 will now lock ONLY the 6 bytes starting at offset 16 (16 bytes
  226. from the start of the file which is byte #17 if you start counting at 1).
  227. These 6 bytes have always been defined as the "LOCKED" bytes since v14.0 and
  228. in effect were always locked anyway since a lock on the first 128 bytes
  229. included those 6 bytes.  Therefore programs that were originally designed to
  230. work with v14.0 should continue to work properly unmodified!
  231.  
  232. The advantage to locking only the 6 bytes at offset 16 is that the first 16
  233. bytes are still READABLE and that any node or process wishing to read the
  234. first 16 bytes is now allowed to do so.
  235.  
  236. For instance, a (R)ead command or a (Y)our Mail command will now be allowed
  237. to proceed WHILE the message base is being updated.  Previously those
  238. functions would be required to wait until the lock was removed before they
  239. could proceed with reading the header bytes (which defined the 'High Message
  240. Number', the 'Low Message Number', the 'Number of Active Messages' and the
  241. 'Number of System Callers').
  242.  
  243. It is recommended that Third Party Authors use the same technique now for
  244. updating the message base EVEN THOUGH the old method of locking all 128 bytes
  245. will continue to work fine.  The reason for the change was to enhance the
  246. performance of systems where a large number of people could be reading mail
  247. while a large number of messages are being written into the message base.
  248.  
  249.  
  250. PCBPROT.DAT File
  251. ----------------
  252. This file controls the protocols (both internal and external) that are
  253. available on the system.  You'll note that PCBoard v14.5 includes two new
  254. additional INTERNAL protocols and they are:  Ymodem and Ymodem/G - both of
  255. which are the "batch protocol" equivalents of 1K-Xmodem and 1K-Xmodem/G.
  256.  
  257. The new text entries for these two protocols look like this:
  258.  
  259.        Y,I,1024,Ymodem   (Batch U/L and D/L),N,N,N
  260.        G,I,1024,Ymodem/G (Batch U/L and D/L),Y,N,N
  261.  
  262. Note that there are three new fields on the end of each line.  They are as
  263. follows:
  264.  
  265.   - Requires MNP (answer YES if it needs an error corrected session)
  266.   - Port Open (answer YES if the port should be left open during the shell)
  267.   - Lock Lines (answer YES if the status lines should be frozen at the top)
  268.  
  269. NOTE that PCBoard v14.0 thru v14.2 will *ignore* the new fields on the end,
  270. however, they will show up in the protocol description field.  Thus the new
  271. fields won't break v14.0 code but they will look funny if you add them in.
  272.  
  273.  
  274. PWRD File
  275. ---------
  276. This file controls the caller's access to the system.  Two new fields have been
  277. added to the file.  They are:  "Base Baud Rate" and "Batch Limit".  Because the
  278. entries are on the end of the line previous versions of PCBoard will not have
  279. any trouble reading the file with the new fields in place - in other words,
  280. version 14.0 thru 14.2 will ignore the new fields.
  281.  
  282.   Example usage:
  283.                                                          Base    Batch
  284.                        Password     Sec  Time  K Bytes Baud Rate Limit
  285.                     ══════════════ ═════ ═════ ═══════ ═════════ ═════
  286.                                      10    60     100      1200    10
  287.  
  288.   The two new entries above indicate the following:
  289.  
  290.   Base Baud Rate:  The "1200" indicates that the 100K byte limit is based on a
  291.   baud rate of 1200 bps.  Therefore if a caller connects at 2400 baud he would
  292.   have a limit of 200K.  A caller at 19200 would have a limit of 1600K bytes.
  293.   NOTE:  the default value for Base Baud Rate is 0.  With a base baud rate of
  294.   "0" the K-Byte limit becomes an absolute value - i.e.  the value does not
  295.   change according to the connection speed of the caller.
  296.  
  297.   Batch Limit:  The default here is 0 which means that the /BLIM:xx variable
  298.   (if it exists) should be queried for the batch limit.  If one is not found
  299.   then the PCBoard v14.2 default of 30 files is provided.
  300.  
  301. Both of the above changes provide for the fact that if the sysop does NOTHING
  302. to the file then system will behave like a v14.2 system.  If, however, the
  303. sysop chooses to modify the file he can do so to gain control over his v14.5
  304. system - however, v14.2 will ignore the changes made to the file.
  305.  
  306. In addition - v14.5 has been enhanced such that a K-Bytes value of "32767" is
  307. considered to be a special value meaning "unlimited download bytes".  If you
  308. use "32767" then PCBoard will display the text "Unlimited" to the caller when
  309. they view the download limit - and file transfers will ignore the number of
  310. bytes being downloaded in byte limit calculations.  Additionally, the new
  311. "Base Baud Rate" field will have no effect on a value of "32767".
  312.  
  313.  
  314. DOORS.LST File
  315. --------------
  316. This is the list of DOORS that are available to the caller.  There have been
  317. four new fields added to the end of each line and they are:  1) Make a
  318. USERS.SYS file, 2) Make a DOORS.SYS file, 3) Path to the DOOR batch file and
  319. 4) Auto Login Door
  320.  
  321.   Example usage:
  322.  
  323.      Filename    Password   Sec Login USER.SYS DOOR.SYS Path to Batch Files
  324.     ══════════ ════════════ ═══ ═════ ════════ ════════ ═══════════════════
  325.   1) TESTDOOR                10   N       Y        N    C:\PCB\
  326.  
  327.  
  328.   The four new entries above indicate the following:
  329.  
  330.   1) (LOGIN = YES) Users with the security level specified should be
  331.      automatically sent to the door during the login process.
  332.   2) (USERS.SYS = YES) A USERS.SYS file should be created.
  333.   3) (DOOR.SYS = YES)  A DOOR.SYS file should not be created.
  334.   4) The file TESTDOOR can be found in C:\PCB\
  335.  
  336. The YES/NO values are stored as -1 for YES and 0 for NO so the above line
  337. would look like this in your DOORS.LST file:
  338.  
  339.     TESTDOOR,,10,-1,0,C:\PCB\,0
  340.  
  341. They are stored in the file in the following order:  users.sys, door.sys,
  342. path to files, auto login door.
  343.  
  344. The defaults for the four new fields are NO, NO, blank and NO.  This means
  345. that a version 14.2 formatted DOORS.LST file will function the same whether
  346. used under PCBoard v14.2 or under v14.5.
  347.  
  348. !!!WARNING!!!  As of the time this feature was added it was found that some
  349. !!!WARNING!!!  door programs (such as ProDoor) would not properly read the
  350. !!!WARNING!!!  DOORS.LST file.  Such programs should be modified so that they
  351. !!!WARNING!!!  do not read the rest of the line - otherwise you'll simply
  352. !!!WARNING!!!  have to forgo using this feature until they are updated.
  353.  
  354.  
  355.  
  356. USERS File
  357. ----------
  358. The byte at position 100 in the Users File was marked as "reserved" in
  359. the PCBoard Users Manual for version 14.0 thru 14.2.  With the release
  360. of version 14.5 this byte now takes on a meaning.  It is a set of
  361. "Packed Flags" (8 of them all together).  Currently only two of the 8
  362. flags are in use and they are in bits 0 and 1 of the byte.  Their
  363. meanings are as follows:
  364.  
  365.    Bit 0 = Dirty Flag
  366.            Indicates that another node on the network has updated the
  367.            user record and that PCBoard should re-read the record prior
  368.            to writing new data to the record.
  369.  
  370.    Bit 1 = Clear Screen Before Message
  371.            Stores the user's preference for clearing or not clearing the
  372.            screen prior to displaying a message on the screen.
  373.  
  374.    Bit 2 = Has Mail Flag
  375.            When a a message is left the code will modify the ADDRESSEE's user
  376.            record by setting the Has Mail flag on.  This flag remains on
  377.            until the caller has read at least one message addressed to him in
  378.            each of the conferences for which the Mail Waiting flag is turned
  379.            on in his USERS.INF record.
  380.  
  381.    Bit 3 = Don't Ask to Use Full Screen Editor
  382.            When this bit is set the caller will not be asked if he wants to
  383.            use the Full Screen Editor - instead it will default to the
  384.            setting in Bit 4.  When not set it will ask the question with the
  385.            default set to YES if the caller is in EXPERT MODE and ANSI has
  386.            been detected.  Otherwise it will default to NO.
  387.  
  388.    Bit 4 = Use Full Screen Editor
  389.            If Bit 3 is set then this bit is checked.  When set it will default
  390.            to using the Full Screen Editor and when not set it will default to
  391.            the Line Editor.
  392.  
  393. Four bytes at positions 385, 386, 387 and 388 are used as a long integer
  394. pointer into the USERS.INF record.
  395.  
  396. And two bytes at positions 398 and 399 are used as an unsigned integer which
  397. holds the number of the conference the user was last in.  If the conference
  398. number is above 255 then the "Last In" byte at position 192 is stored as a
  399. 255 and the value at positions 398 and 399 are used instead.
  400.  
  401.  
  402. CONFERENCE REGISTRATIONS IN USERS FILE
  403. --------------------------------------
  404. A note on the usage of the Registered and Expired Registration flags:
  405.  
  406. PCBoard will turn the REGISTERED flag off while leaving the EXPIRED
  407. registration flag turned on to indicate that the caller is locked out.
  408. Examples:
  409.  
  410.  Registered  Expired     PCBoard Shows  Explanation
  411.  ----------  -------  =  -------------  -----------
  412.      Off       Off           ""         Caller is not registered but
  413.                                         may join if the conference is
  414.                                         public and his security level
  415.                                         permits access.
  416.  
  417.      On        Off           "R"        Caller is registered in this
  418.                                         conference. If he expires then
  419.                                         he can no longer access it
  420.                                         unless it is public and his
  421.                                         security level permits access.
  422.  
  423.      On        On     =      "RX"       Caller is always registered.
  424.  
  425.      Off       On     =      "L"        Caller is locked out and
  426.                                         cannot join the conference
  427.                                         regardless of whether it is
  428.                                         public or not.
  429.  
  430.  
  431. PCBOARD.SYS
  432. -----------
  433. Because PCBoard can now adjust the "Maximum Download Bytes" according to the
  434. connect speed of the caller - it will now write the updated Max K-Bytes to
  435. the PCBOARD.SYS file so that no change should be required in DOORS that read
  436. the PCBOARD.SYS file to determine the limit.  That is the only difference in
  437. the way existing PCBOARD.SYS fields are handled.
  438.  
  439. There are some new fields at the end of the file which are NON-critical.
  440. Meaning, they don't need to be there but PCBoard will put them there and use
  441. them if found when reloading PCBoard.
  442.  
  443. They are as follows (Offset 128 means the 129th byte in the file):
  444.  
  445.   Offset  Variable                    Meaning
  446.   ------  --------                    -------
  447.     128   bool     UseAnsi            TRUE if caller is ansi-capable
  448.     129   char     LastEventDate[8]   Date of last event (MM-DD-YY)
  449.     137   unsigned LastEventMinute    Minute of last event (12:00am = 0)
  450.     139   bool     RemoteDOS          TRUE if caller has dropped to DOS
  451.     140   bool     EventUpComing      TRUE if event is within User's Time Limit
  452.     141   bool     StopUploads        TRUE if event is within Upload Guard Time
  453.     142   unsigned Conference         Number of Conference the caller was in
  454.     ..
  455.           bitmap   ConfJoined         Bit Map fields for High Conferences
  456.           bitmap   ConfScanned        Bit Map fields for High Conferences
  457.  
  458. The final two fields, ConfJoined and ConfScanned are dynamically sized and
  459. are ONLY present if there are more than 40 total areas (counting Main Board)
  460. in the system.
  461.  
  462. Note that the two bytes at offset 142 indicate the conference number that the
  463. caller was in - this information is a duplicate of that which is at offset 65
  464. (position 66) in the file.  However, the data at that location is only 1 byte
  465. in size which creates a limit of only 256 conference (0 thru 255).  If the
  466. caller is in a conference number beyond 255 then the byte at offset 65 will
  467. contain 255 and the number in the unsigned integer at offset 142 should be
  468. used instead.
  469.  
  470.  
  471. DIR Files
  472. ---------
  473. Virtually no change here - except that because v14.5 is able to keep the
  474. "secondary lines" logically attached to their "primary lines" there is now a
  475. limit on the maximum number of secondary lines you can have.  That limit is
  476. 59 lines.  In other words, each file description can consist of one primary
  477. line and up to 59 secondary lines.
  478.  
  479. It should be noted, however, that GRAPHICS versions of the DIR files are no
  480. longer supported.  This is because v14.5 now supports on-the-fly colorizing
  481. of the DIR files among other reason.
  482.  
  483.  
  484. ANSI Files
  485. ----------
  486. Text files with ANSI codes in them have a limit of 2046 characters before a
  487. carriage return/line feed sequence must be found.   Previous versions had a
  488. hard time working with anything over 256 bytes so this should not be a problem
  489. for anyone - but you do need to be aware of the fact that there IS a limit
  490. on the maximum line length.
  491.  
  492.  
  493. CALLER Logs
  494. -----------
  495. In most cases entries are written to the callers log EXACTLY as they appear in
  496. the PCBTEXT file.  In other words, if PCBTEXT has a line that says:
  497.  
  498.      Graphics mode is now on @FIRST@ ...
  499.  
  500. Then that is exactly what is written to the callers log - i.e. the @FIRST@
  501. variable does NOT get substituted prior to writing it to the callers log.
  502.  
  503. This is to aid the developers of callers log analyzers and allow the sysop
  504. to customize his PCBTEXT file without causing problems for such analyzers.
  505. Basically, all that the analyzer need do is read in the text (such as record
  506. number 287 for the above example) from the PCBTEXT file and then scan the
  507. callers log for exact matches on these records.
  508.  
  509.  
  510. DOOR batch files
  511. ----------------
  512. All of your door batch files should continue to work under v14.5 unmodified.
  513. However, there are a couple of items of interest:
  514.  
  515. 1) The DOORS.LST file (as mentioned above) allows you to specify the location
  516.    of the DOOR batch file so that you could, in effect, have a single batch
  517.    file for all of the various nodes on your system.  For large systems this
  518.    can cut down not only on the complexity of the \PCB subdirectory but save
  519.    quite a bit of disk space as well.
  520.  
  521. 2) Version 14.5 can pass command line parameters to the DOOR program.  It does
  522.    this by adding a line at the top of your DOOR batch file that sets the
  523.    PCBDOOR environment variable equal to the command line parameters that the
  524.    caller used when opening the door.
  525.  
  526.    Example:     OPEN MYDOOR PARAM1 PARAM2 PARAM3
  527.  
  528.    At the top of your DOOR batch file you would see a line that looks like
  529.    this:   SET PCBDOOR=PARAM1 PARAM2 PARAM3
  530.  
  531.    Note that the caller can type either spaces or semicolons between each
  532.    parameter (the same way PCBoard accepts each command with space or
  533.    semicolon delimiters).  However, the PCBDOOR variable will use only spaces
  534.    in between each parameter.
  535.